Bug 653450 - gtkfilechooser crashes when added favorite
authorJohn Ralls <jralls@ceridwen.us>
Sun, 3 Jul 2011 23:40:03 +0000 (16:40 -0700)
committerKristian Rietveld <kris@gtk.org>
Thu, 14 Jul 2011 12:17:51 +0000 (14:17 +0200)
Ensure that display is set during drag-and-drop, and that string lists'
memory is zeroed after allocation to prevent g_strfreev() from
over-running.

gdk/quartz/gdkselection-quartz.c
gtk/gtkdnd-quartz.c
gtk/gtkquartz.c

index 566448e2b9ef8176027298b5f642b7b28445f45c..3accf32bd07f3a1b1bc8d3b2c31a4b36c270af45 100644 (file)
@@ -121,10 +121,8 @@ make_list (const gchar  *text,
     }
 
   if (list)
-    *list = g_new (gchar *, n_strings + 1);
+    *list = g_new0 (gchar *, n_strings + 1);
 
-  (*list)[n_strings] = NULL;
-  
   i = n_strings;
   tmp_list = strings;
   while (tmp_list)
index dced9a39de89b93f3f1979933bedbfa328484a48..07611713848f58de76e8a6c6f908dd638b095f29 100644 (file)
@@ -147,6 +147,7 @@ struct _GtkDragFindData
   selection_data.data = NULL;
   selection_data.length = -1;
   selection_data.target = _gtk_quartz_pasteboard_type_to_atom (type);
+  selection_data.display = gdk_display_get_default ();
 
   if (gtk_target_list_find (info->target_list, 
                            selection_data.target, 
index d691f7f254fd911ea5aa6701584b77ad08f28b0e..b9ea2ec1ff119c3cb70dd416b897338a128a3ea4 100644 (file)
@@ -160,7 +160,8 @@ _gtk_quartz_get_selection_data_from_pasteboard (NSPasteboard *pasteboard,
   selection_data = g_slice_new0 (GtkSelectionData);
   selection_data->selection = selection;
   selection_data->target = target;
-
+  if (!selection_data->display)
+    selection_data->display = gdk_display_get_default ();
   if (target == gdk_atom_intern_static_string ("UTF8_STRING"))
     {
       NSString *s = [pasteboard stringForType:NSStringPboardType];